package com.TTBook.core.book.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class BookStatusCriteria {
    protected String orderByClause;

    protected List oredCriteria;

    public BookStatusCriteria() {
        oredCriteria = new ArrayList();
    }

    protected BookStatusCriteria(BookStatusCriteria example) {
        this.orderByClause = example.orderByClause;
        this.oredCriteria = example.oredCriteria;
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public List getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     * This method was generated by Apache iBATIS ibator.
     * This method corresponds to the database table ts_book_status
     *
     *  Wed Oct 16 00:14:30 CST 2013
     */
    public void clear() {
        oredCriteria.clear();
    }

    public static class Criteria {
        protected List criteriaWithoutValue;

        protected List criteriaWithSingleValue;

        protected List criteriaWithListValue;

        protected List criteriaWithBetweenValue;

        protected Criteria() {
            super();
            criteriaWithoutValue = new ArrayList();
            criteriaWithSingleValue = new ArrayList();
            criteriaWithListValue = new ArrayList();
            criteriaWithBetweenValue = new ArrayList();
        }

        public boolean isValid() {
            return criteriaWithoutValue.size() > 0
                || criteriaWithSingleValue.size() > 0
                || criteriaWithListValue.size() > 0
                || criteriaWithBetweenValue.size() > 0;
        }

        public List getCriteriaWithoutValue() {
            return criteriaWithoutValue;
        }

        public List getCriteriaWithSingleValue() {
            return criteriaWithSingleValue;
        }

        public List getCriteriaWithListValue() {
            return criteriaWithListValue;
        }

        public List getCriteriaWithBetweenValue() {
            return criteriaWithBetweenValue;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteriaWithoutValue.add(condition);
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            Map map = new HashMap();
            map.put("condition", condition);
            map.put("value", value);
            criteriaWithSingleValue.add(map);
        }

        protected void addCriterion(String condition, List values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            Map map = new HashMap();
            map.put("condition", condition);
            map.put("values", values);
            criteriaWithListValue.add(map);
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            List list = new ArrayList();
            list.add(value1);
            list.add(value2);
            Map map = new HashMap();
            map.put("condition", condition);
            map.put("values", list);
            criteriaWithBetweenValue.add(map);
        }

        public Criteria andBookidIsNull() {
            addCriterion("BOOKID is null");
            return this;
        }

        public Criteria andBookidIsNotNull() {
            addCriterion("BOOKID is not null");
            return this;
        }

        public Criteria andBookidEqualTo(String value) {
            addCriterion("BOOKID =", value, "bookid");
            return this;
        }

        public Criteria andBookidNotEqualTo(String value) {
            addCriterion("BOOKID <>", value, "bookid");
            return this;
        }

        public Criteria andBookidGreaterThan(String value) {
            addCriterion("BOOKID >", value, "bookid");
            return this;
        }

        public Criteria andBookidGreaterThanOrEqualTo(String value) {
            addCriterion("BOOKID >=", value, "bookid");
            return this;
        }

        public Criteria andBookidLessThan(String value) {
            addCriterion("BOOKID <", value, "bookid");
            return this;
        }

        public Criteria andBookidLessThanOrEqualTo(String value) {
            addCriterion("BOOKID <=", value, "bookid");
            return this;
        }

        public Criteria andBookidLike(String value) {
            addCriterion("BOOKID like", value, "bookid");
            return this;
        }

        public Criteria andBookidNotLike(String value) {
            addCriterion("BOOKID not like", value, "bookid");
            return this;
        }

        public Criteria andBookidIn(List values) {
            addCriterion("BOOKID in", values, "bookid");
            return this;
        }

        public Criteria andBookidNotIn(List values) {
            addCriterion("BOOKID not in", values, "bookid");
            return this;
        }

        public Criteria andBookidBetween(String value1, String value2) {
            addCriterion("BOOKID between", value1, value2, "bookid");
            return this;
        }

        public Criteria andBookidNotBetween(String value1, String value2) {
            addCriterion("BOOKID not between", value1, value2, "bookid");
            return this;
        }

        public Criteria andBookStatusIsNull() {
            addCriterion("BOOK_STATUS is null");
            return this;
        }

        public Criteria andBookStatusIsNotNull() {
            addCriterion("BOOK_STATUS is not null");
            return this;
        }

        public Criteria andBookStatusEqualTo(String value) {
            addCriterion("BOOK_STATUS =", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusNotEqualTo(String value) {
            addCriterion("BOOK_STATUS <>", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusGreaterThan(String value) {
            addCriterion("BOOK_STATUS >", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusGreaterThanOrEqualTo(String value) {
            addCriterion("BOOK_STATUS >=", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusLessThan(String value) {
            addCriterion("BOOK_STATUS <", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusLessThanOrEqualTo(String value) {
            addCriterion("BOOK_STATUS <=", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusLike(String value) {
            addCriterion("BOOK_STATUS like", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusNotLike(String value) {
            addCriterion("BOOK_STATUS not like", value, "bookStatus");
            return this;
        }

        public Criteria andBookStatusIn(List values) {
            addCriterion("BOOK_STATUS in", values, "bookStatus");
            return this;
        }

        public Criteria andBookStatusNotIn(List values) {
            addCriterion("BOOK_STATUS not in", values, "bookStatus");
            return this;
        }

        public Criteria andBookStatusBetween(String value1, String value2) {
            addCriterion("BOOK_STATUS between", value1, value2, "bookStatus");
            return this;
        }

        public Criteria andBookStatusNotBetween(String value1, String value2) {
            addCriterion("BOOK_STATUS not between", value1, value2, "bookStatus");
            return this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("CREATE_TIME is null");
            return this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("CREATE_TIME is not null");
            return this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("CREATE_TIME =", value, "createTime");
            return this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("CREATE_TIME <>", value, "createTime");
            return this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("CREATE_TIME >", value, "createTime");
            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("CREATE_TIME >=", value, "createTime");
            return this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("CREATE_TIME <", value, "createTime");
            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("CREATE_TIME <=", value, "createTime");
            return this;
        }

        public Criteria andCreateTimeIn(List values) {
            addCriterion("CREATE_TIME in", values, "createTime");
            return this;
        }

        public Criteria andCreateTimeNotIn(List values) {
            addCriterion("CREATE_TIME not in", values, "createTime");
            return this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("CREATE_TIME between", value1, value2, "createTime");
            return this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("CREATE_TIME not between", value1, value2, "createTime");
            return this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("UPDATE_TIME is null");
            return this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("UPDATE_TIME is not null");
            return this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("UPDATE_TIME =", value, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("UPDATE_TIME <>", value, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("UPDATE_TIME >", value, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("UPDATE_TIME >=", value, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("UPDATE_TIME <", value, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("UPDATE_TIME <=", value, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeIn(List values) {
            addCriterion("UPDATE_TIME in", values, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeNotIn(List values) {
            addCriterion("UPDATE_TIME not in", values, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("UPDATE_TIME between", value1, value2, "updateTime");
            return this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("UPDATE_TIME not between", value1, value2, "updateTime");
            return this;
        }

        public Criteria andPutAwayTimeIsNull() {
            addCriterion("PUT_AWAY_TIME is null");
            return this;
        }

        public Criteria andPutAwayTimeIsNotNull() {
            addCriterion("PUT_AWAY_TIME is not null");
            return this;
        }

        public Criteria andPutAwayTimeEqualTo(Date value) {
            addCriterion("PUT_AWAY_TIME =", value, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeNotEqualTo(Date value) {
            addCriterion("PUT_AWAY_TIME <>", value, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeGreaterThan(Date value) {
            addCriterion("PUT_AWAY_TIME >", value, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("PUT_AWAY_TIME >=", value, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeLessThan(Date value) {
            addCriterion("PUT_AWAY_TIME <", value, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeLessThanOrEqualTo(Date value) {
            addCriterion("PUT_AWAY_TIME <=", value, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeIn(List values) {
            addCriterion("PUT_AWAY_TIME in", values, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeNotIn(List values) {
            addCriterion("PUT_AWAY_TIME not in", values, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeBetween(Date value1, Date value2) {
            addCriterion("PUT_AWAY_TIME between", value1, value2, "putAwayTime");
            return this;
        }

        public Criteria andPutAwayTimeNotBetween(Date value1, Date value2) {
            addCriterion("PUT_AWAY_TIME not between", value1, value2, "putAwayTime");
            return this;
        }

        public Criteria andUndercarriageTimeIsNull() {
            addCriterion("UNDERCARRIAGE_TIME is null");
            return this;
        }

        public Criteria andUndercarriageTimeIsNotNull() {
            addCriterion("UNDERCARRIAGE_TIME is not null");
            return this;
        }

        public Criteria andUndercarriageTimeEqualTo(Date value) {
            addCriterion("UNDERCARRIAGE_TIME =", value, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeNotEqualTo(Date value) {
            addCriterion("UNDERCARRIAGE_TIME <>", value, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeGreaterThan(Date value) {
            addCriterion("UNDERCARRIAGE_TIME >", value, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("UNDERCARRIAGE_TIME >=", value, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeLessThan(Date value) {
            addCriterion("UNDERCARRIAGE_TIME <", value, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeLessThanOrEqualTo(Date value) {
            addCriterion("UNDERCARRIAGE_TIME <=", value, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeIn(List values) {
            addCriterion("UNDERCARRIAGE_TIME in", values, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeNotIn(List values) {
            addCriterion("UNDERCARRIAGE_TIME not in", values, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeBetween(Date value1, Date value2) {
            addCriterion("UNDERCARRIAGE_TIME between", value1, value2, "undercarriageTime");
            return this;
        }

        public Criteria andUndercarriageTimeNotBetween(Date value1, Date value2) {
            addCriterion("UNDERCARRIAGE_TIME not between", value1, value2, "undercarriageTime");
            return this;
        }

        public Criteria andOperatorIsNull() {
            addCriterion("OPERATOR is null");
            return this;
        }

        public Criteria andOperatorIsNotNull() {
            addCriterion("OPERATOR is not null");
            return this;
        }

        public Criteria andOperatorEqualTo(String value) {
            addCriterion("OPERATOR =", value, "operator");
            return this;
        }

        public Criteria andOperatorNotEqualTo(String value) {
            addCriterion("OPERATOR <>", value, "operator");
            return this;
        }

        public Criteria andOperatorGreaterThan(String value) {
            addCriterion("OPERATOR >", value, "operator");
            return this;
        }

        public Criteria andOperatorGreaterThanOrEqualTo(String value) {
            addCriterion("OPERATOR >=", value, "operator");
            return this;
        }

        public Criteria andOperatorLessThan(String value) {
            addCriterion("OPERATOR <", value, "operator");
            return this;
        }

        public Criteria andOperatorLessThanOrEqualTo(String value) {
            addCriterion("OPERATOR <=", value, "operator");
            return this;
        }

        public Criteria andOperatorLike(String value) {
            addCriterion("OPERATOR like", value, "operator");
            return this;
        }

        public Criteria andOperatorNotLike(String value) {
            addCriterion("OPERATOR not like", value, "operator");
            return this;
        }

        public Criteria andOperatorIn(List values) {
            addCriterion("OPERATOR in", values, "operator");
            return this;
        }

        public Criteria andOperatorNotIn(List values) {
            addCriterion("OPERATOR not in", values, "operator");
            return this;
        }

        public Criteria andOperatorBetween(String value1, String value2) {
            addCriterion("OPERATOR between", value1, value2, "operator");
            return this;
        }

        public Criteria andOperatorNotBetween(String value1, String value2) {
            addCriterion("OPERATOR not between", value1, value2, "operator");
            return this;
        }

        public Criteria andRejectReasonIsNull() {
            addCriterion("REJECT_REASON is null");
            return this;
        }

        public Criteria andRejectReasonIsNotNull() {
            addCriterion("REJECT_REASON is not null");
            return this;
        }

        public Criteria andRejectReasonEqualTo(String value) {
            addCriterion("REJECT_REASON =", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonNotEqualTo(String value) {
            addCriterion("REJECT_REASON <>", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonGreaterThan(String value) {
            addCriterion("REJECT_REASON >", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonGreaterThanOrEqualTo(String value) {
            addCriterion("REJECT_REASON >=", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonLessThan(String value) {
            addCriterion("REJECT_REASON <", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonLessThanOrEqualTo(String value) {
            addCriterion("REJECT_REASON <=", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonLike(String value) {
            addCriterion("REJECT_REASON like", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonNotLike(String value) {
            addCriterion("REJECT_REASON not like", value, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonIn(List values) {
            addCriterion("REJECT_REASON in", values, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonNotIn(List values) {
            addCriterion("REJECT_REASON not in", values, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonBetween(String value1, String value2) {
            addCriterion("REJECT_REASON between", value1, value2, "rejectReason");
            return this;
        }

        public Criteria andRejectReasonNotBetween(String value1, String value2) {
            addCriterion("REJECT_REASON not between", value1, value2, "rejectReason");
            return this;
        }

        public Criteria andRejectFlagIsNull() {
            addCriterion("REJECT_FLAG is null");
            return this;
        }

        public Criteria andRejectFlagIsNotNull() {
            addCriterion("REJECT_FLAG is not null");
            return this;
        }

        public Criteria andRejectFlagEqualTo(String value) {
            addCriterion("REJECT_FLAG =", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagNotEqualTo(String value) {
            addCriterion("REJECT_FLAG <>", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagGreaterThan(String value) {
            addCriterion("REJECT_FLAG >", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagGreaterThanOrEqualTo(String value) {
            addCriterion("REJECT_FLAG >=", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagLessThan(String value) {
            addCriterion("REJECT_FLAG <", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagLessThanOrEqualTo(String value) {
            addCriterion("REJECT_FLAG <=", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagLike(String value) {
            addCriterion("REJECT_FLAG like", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagNotLike(String value) {
            addCriterion("REJECT_FLAG not like", value, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagIn(List values) {
            addCriterion("REJECT_FLAG in", values, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagNotIn(List values) {
            addCriterion("REJECT_FLAG not in", values, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagBetween(String value1, String value2) {
            addCriterion("REJECT_FLAG between", value1, value2, "rejectFlag");
            return this;
        }

        public Criteria andRejectFlagNotBetween(String value1, String value2) {
            addCriterion("REJECT_FLAG not between", value1, value2, "rejectFlag");
            return this;
        }
    }
}